With the advent of computers and communication networks, the ability to generate, store, utilize, distribute, publish or otherwise share content and information has vastly improved. This has further led to the routine transfer of large amounts of data, content and information between devices. While much of the material transferred between devices is exactly that which is desired by the corresponding users, malicious software (or malware) can also be transferred among devices. The malware may pose privacy or security concerns, or it may be disruptive or even destructive and costly in some situations.
In order to attempt to minimize the impact of malware, anti-virus software, network operations centers, network security offices and other entities may operate to attempt to accurately and quickly determine whether a received piece of unknown software is or contains malware. In particular, it may be desirable to ensure that high-assurance applications have, or do not have, certain functionality, or prove that the software behaves correctly in edge cases and/or does not corrupt valuable information. However, the ability to perform analysis of such software in order to reason about its behavior can be difficult to accomplish in a way that balances computation time, accuracy and human comprehensibility.
Accordingly, it may be desirable to continue to develop improved and/or more efficient mechanisms by which protection against malware may be provided while striking an appropriate balance relative to the factors discussed above.